package com.frame.easy.modular.activiti.service;

import com.frame.easy.common.page.Page;
import com.frame.easy.modular.activiti.model.Task;
import org.springframework.ui.Model;

import javax.servlet.http.HttpServletRequest;

/**
 * 待办任务
 *
 * @author tengchong
 * @date 2020/3/27
 */
public interface TaskService {
    /**
     * 查询待办任务
     *
     * @param task 查询条件
     * @return Page
     */
    Page select(Task task);

    /**
     * 签收任务
     *
     * @param taskId 任务id
     */
    void claimTask(String taskId);

    /**
     * 读取用户任务的表单字段
     *
     * @param taskId 任务Id
     * @param model  model
     */
    void readTaskForm(String taskId, Model model);

    /**
     * 流转任务
     *
     * @param taskId  任务Id
     * @param request request
     */
    void completeTask(String taskId, HttpServletRequest request);

    /**
     * 撤销申请
     *
     * @param processInstanceId 流程实例ID
     * @param deleteReason      撤销原因
     */
    void revoke(String processInstanceId, String deleteReason);
}
